package com.demo.java.OD1_50.OD40;

import java.util.Scanner;
import java.util.*;


/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【数组排序】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145566943
 */
public class OdMain {

    public static void main(String[] args) {
        try {
            Scanner sca = new Scanner(System.in);
            String input = sca.nextLine();  // 读取输入
            String[] inputs = input.split(",");  // 按逗号分割输入
            List<Integer> myList = new ArrayList<>();  // 用于存储唯一元素
            Map<Integer, Integer> myMap = new HashMap<>();  // 用于统计每个数字出现的次数

            // 遍历输入数组，填充 myList 和 myMap
            for (String s : inputs) {
                int num = Integer.parseInt(s);
                if (!myList.contains(num)) {
                    myList.add(num);  // 去除重复元素
                }
                myMap.put(num, myMap.getOrDefault(num, 0) + 1);  // 更新数字出现次数
            }

            // 将数字及其出现次数存入 resList
            List<int[]> resList = new ArrayList<>();
            for (Integer i : myList) {
                int[] datas = new int[2];
                datas[0] = i;
                datas[1] = myMap.get(i);
                resList.add(datas);
            }

            // 按出现次数降序排序
            resList.sort((a1, a2) -> Integer.compare(a2[1], a1[1]));

            // 输出结果
            for (int j = 0; j < resList.size(); ++j) {
                System.out.print(resList.get(j)[0]);
                if (resList.size() - 1 != j) {
                    System.out.print(",");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("input error");
        }
    }
}